#ifndef FRIENDREQUESTPAGE_H
#define FRIENDREQUESTPAGE_H

#include <QWidget>
#include <QListWidget>
#include <QPushButton>

namespace Ui {
class FriendRequestPage;
}

/**
 * @brief 好友申请页面类，处理好友申请的查看和处理
 */
class FriendRequestPage : public QWidget
{
    Q_OBJECT

public:
    /**
     * @brief 构造函数，初始化好友申请页面
     * @param parent 父窗口指针
     */
    explicit FriendRequestPage(QWidget *parent = nullptr);

    /**
     * @brief 析构函数，释放资源
     */
    ~FriendRequestPage();

    /**
     * @brief 加载好友申请列表
     * @param requesterIds 申请者ID列表
     * @param requesterNames 申请者名称列表
     */
    void loadFriendRequests(const QStringList &requesterIds, const QStringList &requesterNames);

signals:
    /**
     * @brief 返回好友列表页面信号
     */
    void backToFriendList();

    /**
     * @brief 接受好友申请信号
     * @param requesterId 申请者ID
     */
    void acceptRequest(const QString &requesterId);

    /**
     * @brief 拒绝好友申请信号
     * @param requesterId 申请者ID
     */
    void rejectRequest(const QString &requesterId);

private slots:
    /**
     * @brief 返回按钮点击事件处理
     */
    void onBackClicked();

    /**
     * @brief 接受按钮点击事件处理
     */
    void onAcceptClicked();

    /**
     * @brief 拒绝按钮点击事件处理
     */
    void onRejectClicked();

private:
    Ui::FriendRequestPage *ui;        ///< UI对象指针
    QListWidget *m_requestList;       ///< 申请列表控件
    QPushButton *m_backBtn;           ///< 返回按钮

    /**
     * @brief 初始化UI组件
     */
    void initUI();
};

#endif // FRIENDREQUESTPAGE_H
